Attribute VB_Name = "mod_vbDP5"
Option Explicit

'Public RS232HeaderReceived As Boolean
Public RS232PacketPtr As Integer
'Public RS232ComPortTest As Boolean
'Public Const MAX_DISPLAY_ENTRIES = 4

'Public Sub NetFinderSearch()  ' DP5 Netfinder Search
'    Dim idxEntry As Long
'    Dim IdRequest(5) As Byte    'Broadcast Identity Request (Note: Silicon Labs = 4 bytes, Amptek = 6 bytes)
'
'    On Error GoTo NetFinderSearchErr
'
'    'If (NetFinderWinSockError) Then Exit Sub
'    'NetFinderWinSock.RemoteHost = "255.255.255.255" ' this gets set to the responding IP, so reset it each time
'    Netfinder_Seq = Rnd * 32767 ' 15-bit random seq number, so don't have to screw around with signed INT
'    IdRequest(0) = 0            ' Netfinder version/type
'    IdRequest(1) = 0            ' reserved
'    IdRequest(2) = (Netfinder_Seq And &HFF00) \ 256  'MSB
'    IdRequest(3) = Netfinder_Seq And 255 ' LSB
'    IdRequest(4) = &HF4         ' append validation bytes
'    IdRequest(5) = &HFA
'
'    For idxEntry = 0 To 3   'initialize entries
'        frmConnect.cmdSelectIP(idxEntry).Visible = False
'        frmDP5_Connect.lblUnit(idxEntry).Caption = ""
'        frmConnect.lblUnit(idxEntry).BackColor = &H80000005
'        frmConnect.lblUnit(idxEntry).ForeColor = &H80000012
'        InitEntry DppEntries(idxEntry)
'    Next
'
'    NewNetfinderRequest = True
'    frmDP5.NetFinderWinSock.RemoteHost = "255.255.255.255"  'this gets set to the responding IP, so reset it each time
'
'    frmDP5.NetFinderWinSock.SendData IdRequest()            'send 3 times - DP5 will respond to only first one it sees
'    frmConnect.lblNetFinderErrors.Caption = ""
'    Exit Sub
'NetFinderSearchErr:
'    frmConnect.lblNetFinderErrors.Caption = "Net Finder Socket Error:" & vbNewLine & Err.Description
'
'End Sub

'Public Function SendPacketRS232(IntCtrl As Object, ByRef Buffer() As Byte, ByRef PacketIn() As Byte) As Boolean
'    Dim bytesWritten As Long, bytesRead As Long
'    Dim success As Boolean
'    Dim curStartTime As Currency
'    Dim isExpired As Boolean
'    Dim strLog As String
'    Dim i As Long
'    Dim PLen As Long
'
'    PLen = (Buffer(4) * 256) + Buffer(5) + 7
'
'    ACK_Received = False
'    Packet_Received = False ' a response packet is always expected
'    PIN.STATUS = &HFF   ' packet invalid - will be overwritten soon by response/ACK packet
'
'    ' send the packet
'    'For i = 0 To POUT.LEN + 7
'    For i = 0 To PLen
'        IntCtrl.Output = Chr(Buffer(i))
'    Next i
'    Timeout_flag = False
'    curStartTime = msTimeStart()
'    Do
'        DoEvents    ' receive bytes and parse packet
'        isExpired = msTimeExpired(curStartTime, 1000)
'        If (isExpired) Then Timeout_flag = True
'    Loop While (PIN.STATUS = &HFF) And (Timeout_flag = False)  ' wait for ACK or timeout
'    If Timeout_flag Then
'        strLog = strLog + "Timeout: no response packet!" + vbCrLf
'        SendPacketRS232 = False
'    Else
'        SendPacketRS232 = True
'    End If
'End Function
'
'Public Function SendPacketInet(IntCtrl As Object, ByRef Buffer() As Byte, ByRef PacketIn() As Byte) As Boolean
'    Dim bytesWritten As Long, bytesRead As Long
'    Dim success As Boolean
'    Dim curStartTime As Currency
'    Dim isExpired As Boolean
'    Dim strLog As String
'    Dim idxData As Long
'    Dim PLen As Long
'    Dim Buffer_Eth() As Byte
'    On Error GoTo SendPacketInetErr
'
'    UDP_offset = 0  ' start at the beginning of InPacket()
'    PLen = (Buffer(4) * 256) + Buffer(5) + 7
'    ReDim Buffer_Eth(PLen)  'make a buffer the size of the data
'    ACK_Received = False
'    Packet_Received = False ' a response packet is always expected
'    PIN.STATUS = &HFF   ' packet invalid - will be overwritten soon by response/ACK packet
'
'    For idxData = 0 To PLen
'        Buffer_Eth(idxData) = Buffer(idxData)
'    Next
'    IntCtrl.SendData Buffer_Eth()
'    SendPacketInet = True
'
'    Exit Function
'SendPacketInetErr:
'    SendPacketInet = False
'End Function

Public Function EntryToStrRS232(ByRef pEntry As NETDISPLAY_ENTRY, strPort As String) As String
    Dim cstrAlertLevel As String
    Dim strDeviceType As String
    Dim cstrIpAddress As String
    Dim cstrEvent1, cstrEvent2 As String
    Dim cstrAdditionalDesc As String
    Dim cstrMacAddress As String
    Dim cstrEntry As String
    Dim temp_str, temp_str2 As String
    Dim idxVal As Long
    Dim strSep As String

    cstrAlertLevel = "Connection: "
    cstrAlertLevel = cstrAlertLevel & strPort
    strDeviceType = pEntry.str_type      ' Device Name/Type
    ' IP Address String
    cstrIpAddress = "IP Address: " & IpAddrConvert(pEntry.SockAddr)
    cstrAdditionalDesc = pEntry.str_description   ' Additional Description
    ' MacAddress
    cstrMacAddress = "MAC Address: "
    strSep = ""
    For idxVal = 0 To 5
        cstrMacAddress = cstrMacAddress & strSep & FmtHex(pEntry.mac(idxVal), 2)
        strSep = "-"
    Next
    ' Event1 Time
    temp_str = pEntry.str_ev1 + " "
    temp_str2 = FormatNetFinderTime(pEntry, 1)
    cstrEvent1 = temp_str + temp_str2
    ' Event2 Time
    temp_str = pEntry.str_ev2 + " "
    temp_str2 = FormatNetFinderTime(pEntry, 2)
    cstrEvent2 = temp_str + temp_str2

    cstrEntry = strDeviceType & vbNewLine
    cstrEntry = cstrEntry + cstrAlertLevel & vbNewLine
    cstrEntry = cstrEntry + cstrAdditionalDesc & vbNewLine
    cstrEntry = cstrEntry + cstrEvent1 & vbNewLine
    EntryToStrRS232 = cstrEntry
End Function

'Public Function GetWinSockStateString(wSock As Winsock) As String
'    Select Case wSock.State
'        Case sckClosed  '0 Default.
'            GetWinSockStateString = "Closed"
'        Case sckOpen   '1
'            GetWinSockStateString = "Open"
'        Case sckListening   '2
'            GetWinSockStateString = "Listening"
'        Case sckConnectionPending    '3
'            GetWinSockStateString = "Connection pending"
'        Case sckResolvingHost    '4
'            GetWinSockStateString = "Resolving host"
'        Case sckHostResolved    '5
'            GetWinSockStateString = "Host resolved"
'        Case sckConnecting    '6
'            GetWinSockStateString = "Connecting"
'        Case sckConnected    '7
'            GetWinSockStateString = "Connected"
'        Case sckClosing    '8
'            GetWinSockStateString = "Peer is closing the connection"
'        Case sckError    '9
'            GetWinSockStateString = "Error"
'        Case Else
'            GetWinSockStateString = "Unknown"
'    End Select
'
'End Function

